No matter the computer program, it is inevitable that there will be some bugs (that is, coding errors that cause the program to behave differently what is expected). Production environments represent a number of variables that are difficult to reproduce in testing environments. As such, applications with thousands of interfaces can fail under a variety of changing variables.
Because human intervention is required to maintain these applications, certain tasks must be completed by operations on a timely basis. Failure to operate and maintain the system within the published guidelines for the application will result in a number of unacceptable issues. These include, but are not limited to the following: inaccurate reporting of revenues; increased risks associated with liability; increased risks with system availability; and increased costs due to additional manpower correction activities.
Customers want to know that their mission critical system is performing at peak levels of performance. They want to know when an area of the system is failing. They need to feel confident that the system and its integration with operations are running smoothly. Not knowing the health of the internal components of the system can create a false sense of security.
Another thing software companies sometimes do to eliminate defects is to find out about defects from customers. For a long time, customers had to make contact with the software companies (either by telephone or by e-mail) and let the software companies know about the bugs. More recently, as exemplified by Microsoft® Windows® XP, the operating system offers to send an error report to the software company when a program crashes. That way, the software company is informed about serious errors. (Microsoft and Windows are registered trademarks of Microsoft Corporation in the United States and other countries.)
Some third party products that monitor the operation of systems from the outside exist. For example, Netcool, by Micromuse, collects information from APIs, log files, and other utilities, and forwards this information to a server for filtering. Patrol, by BMC Software, offers remote monitoring and full-application management. But both of these products are external to the applications being monitored. These products focus primarily on external environments surrounding the application. They cannot detect the internal health of the application itself and thus their reporting value is limited in scope.
A need remains for a way to proactively detect application problems and software defects through monitoring internal application performance beyond that associated with the prior art.